package com.tensquare.qa.service;

import com.tensquare.qa.dao.ProblemDao;
import com.tensquare.qa.pojo.Problem;
import entity.PageResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;
import util.IdWorker;

import java.util.List;

/**
 * @author Macross
 * @Type ProblemService.java
 * @Desc 问题信息Service服务类
 * @date 2019/12/17 17:19
 */
@Service
public class ProblemService {

    @Autowired
    private ProblemDao problemDao;
    @Autowired
    private IdWorker idWorker;

    /**
     * 获取最新问题信息列表
     * @param labelId 标签id
     * @param page 分页页码
     * @param size 分页大小
     * @return
     */
    public PageResult<Problem> getNewList(String labelId, Integer page, Integer size) {
        //获取最新问题信息列表并进行分页
        Page<Problem> problems = problemDao.getNewList(labelId, PageRequest.of(page - 1, size));
        //封装并返回结果
        return new PageResult<>(problems.getTotalElements(),problems.getContent());
    }

    /**
     * 获取热门问题信息列表
     * @param labelId 标签id
     * @param page 分页页码
     * @param size 分页大小
     * @return
     */
    public PageResult<Problem> getHotList(String labelId, Integer page, Integer size) {
        //获取热门问题信息列表并进行分页
        Page<Problem> problems = problemDao.getHotList(labelId, PageRequest.of(page - 1, size));
        //封装并返回结果
        return new PageResult<>(problems.getTotalElements(),problems.getContent());
    }

    /**
     * 添加问题
     * @param problem 问题信息对象
     */
    public void add(Problem problem) {
        //设置问题ID
        problem.setId(idWorker.nextId()+"");
        //保存问题
        problemDao.save(problem);
    }
}
